有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

c#将StringBuilder#AppendFormat转换为java

我正在将C#代码转换为Java,我遇到了这一行(其中i是一个int)

sb.AppendFormat("\\u{0:X04}", i);

从我所看到的,Java在其StringBuilder上没有appendFormat方法

我该如何转换这个

编辑:

我看到AppendFormat只是append和String的组合。总体安排如何将\\u{0:X04}转换为Java的字符串。格式


共 (4) 个答案

  1. # 1 楼答案

    java.util.Formatter类有一个zero-argument constructor自动包装StringBuilder:

    Formatter formatter = new Formatter();
    formatter.format("\\u%04x", i);
    
    // ...
    
    String finalText = formatter.toString();
    
    // Or, if you want to be explicit about it:
    //StringBuilder sb = (StringBuilder) formatter.out();
    //String finalText = sb.toString();
    
  2. # 2 楼答案

    您需要“append”和“String”的组合。format',记住调整Java的格式说明符:

    sb.append(String.format("\\u%004X", i));
    
  3. # 3 楼答案

    String.format()可以为你做这项工作。反过来说:

    sb.append(String.format("\\u{0:X04}", i));
    
  4. # 4 楼答案

    大多数答案都包含一些小错误(两个0,而不是Java代码中留下的一个C#格式)

    以下是工作剪报:

    sb.append(String.format("\\u%04X", 0xfcc));
    

    关于注释:C#说明符\\u{0:X04}和Java说明符\\u%04X都以\uXXXX格式生成数字,其中X是大写十六进制数字(当使用小X时,您将得到小写十六进制数字),所以这很重要